import shutil
import webbrowser

import pytest
import os

import sys
import io
from conf.setting import REPORT_TYPE

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

if __name__ == '__main__':

    if REPORT_TYPE == "allure":
        pytest.main([
            '-s', '-v',
            '--alluredir=./allure-results',
            './testcase',
            '--clean-alluredir',
            '--junitxml=./allure-report/junit-report.xml'  # 新增 JUnit XML 报告
        ])

        shutil.copy('./environment.xml', './allure-results')
        # 判断是否由jenkins执行 | "MY_VAR"：通过脚本临时设置jenkins的环境变量后，使用jenkins执行代码时，os.environ中会有名为"MY_VAR"的key
        # 若为jenkins执行代码，则不打开浏览器，否则会让jenkins任务卡住
        if "MY_VAR" in dict(os.environ).keys():
            os.system("allure generate allure-results -o allure-report --clean")
        # 若为手动执行代码，则通过浏览器自动打开测试报告页面
        else:
            os.system(f'allure serve allure-results')



    elif REPORT_TYPE == 'tm':
        pytest.main(['-vs', '--pytest-tmreport-name=testReport.html', '--pytest-tmreport-path=./report/tmreport'])
        webbrowser.open_new_tab(os.getcwd() + '/report/tmreport/testReport.html')


